Data servers generally find themselves in many circumstances for many purposes. However, the present invention is particularly directed to the use of data servers in media networks where the media data are transmitted in packet form. Such uses may specifically be in the purposes of media gateways and media servers for media networks such as telephony networks.
Indeed, it is in the environment of telephony networks, in particular, where the present invention finds particular utility. Telephony networks carry voice data, in particular, which has been coded into digital format. However, while the human ear may be forgiving to a certain extent, it will not tolerate significant interruptions or delay in the passage of spoken messages. In other words, unlike data networks in which delays or interruptions in the delivery of packetized data may be tolerated, at least to some extent, the transmission and processing of voice messages, and also video messages and the like, must take place essentially in real time. Thus, data servers such as gateways and media servers must be constituted in such a manner that they are capable of functioning with high throughput and accuracy of data management and processing.
The following discussion is particularly directed to media servers, but it will be understood that the discussion is applicable as well to gateways and the like, as will be clear to those who are skilled in the art.
Media servers are employed in telephony networks, and perform a variety of basic and enhanced services which include conferencing, interactive voice response, transcoding, announcement, and other advanced speech services. They may also be employed in networks which provide video conferencing services, as well as typical data exchange services of the sort which occurs over the Internet, over virtual private networks, within wide area networks and local area networks, and the like. In each instance, the data of any sort, whether it be voice, video, or numerical or text data, is packetized—that is, the data are sent in packets.
Media servers are connected directly to a packet network, and may therefore be found in use in many service provider locations including those who provide wireless, cable modem, xDSL, fibre, and copper access technologies; provided, however, that the core network within which the immediate server may be found is one which is based on packet technologies such as IP and ATM.
Media servers perform realtime processing of media streams which may originate from such devices as personal computers, IP phones, mobile phones, and traditional phones, via an appropriate media gateway. Typical functions that may be performed by media servers include decoding and collecting DTMF tones, they may play complex audio announcements, they may bridge multiple audio signals, they may transcode between different codec types and bit rates, they may level shift audio signals for automatic game control, and convert text to speech or speech to text. Media servers may also recognize voice commands, bridge video signals, and decode/encode fax streams.
Typically, media servers are part of an enhanced services infrastructure in softswitch architecture. The media servers will act as slaves to service logic which is resident in an application server or in a softswitch, and provide state-of-the-art hardware which may be upgraded and which exhibits almost unlimited scaleability, without regard to the service logic which may be employed in an application server or softswitch, and without regard to whether or not there is the presence of a media gateway such as that which is required for other than VOIP telephony.
In this invention, the particular purpose is to provide an arbitration technique on a backplane of a card shelf in a media server, so as to provide for inter-card communication. By that, the present invention provides an arbitration technique which will efficiently manage traffic along the media buses within the backplane of a card shelf in the media server.
Briefly, the present invention provides for a data server where a media processor card will request the right to transmit a packet of data on the media bus. A bus arbiter which is found on the bus controller card on the card shelf will arbitrate between the various media processor cards wishing to send packets of data, and assign each media processor card a particular bus on which it will communicate with another bus or buses.
In doing so, the bus arbiter will review requests to transmit packets of data in keeping with certain criteria. However, each decision is made on per packet basis.
Thus, a flow control mechanism is provided which ensures delivery of packets of data to their intended destinations; and thereby throughput time and a risk of blockages are improved.